home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / asm-m68k / virtconvert.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1019 b   |  49 lines

  1. #ifndef __VIRT_CONVERT__
  2. #define __VIRT_CONVERT__
  3.  
  4. /*
  5.  * Macros used for converting between virtual and physical mappings.
  6.  */
  7.  
  8. #ifdef __KERNEL__
  9.  
  10. #include <linux/compiler.h>
  11. #include <linux/mmzone.h>
  12. #include <asm/setup.h>
  13. #include <asm/page.h>
  14.  
  15. /*
  16.  * Change virtual addresses to physical addresses and vv.
  17.  */
  18. static inline unsigned long virt_to_phys(void *address)
  19. {
  20.     return __pa(address);
  21. }
  22.  
  23. static inline void *phys_to_virt(unsigned long address)
  24. {
  25.     return __va(address);
  26. }
  27.  
  28. /* Permanent address of a page. */
  29. #ifdef CONFIG_SINGLE_MEMORY_CHUNK
  30. #define page_to_phys(page) \
  31.     __pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT))
  32. #else
  33. #define page_to_phys(_page) ({                        \
  34.     struct page *__page = _page;                    \
  35.     struct pglist_data *pgdat;                    \
  36.     pgdat = pg_data_table[page_to_nid(__page)];            \
  37.     page_to_pfn(__page) << PAGE_SHIFT;                \
  38. })
  39. #endif
  40.  
  41. /*
  42.  * IO bus memory addresses are 1:1 with the physical address,
  43.  */
  44. #define virt_to_bus virt_to_phys
  45. #define bus_to_virt phys_to_virt
  46.  
  47. #endif
  48. #endif
  49.